from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import *

# 获取柱状图对象
bar1 = Bar()
bar2 = Bar()
bar3 = Bar()
# 添加x轴数据
bar1.add_xaxis(['美国', '中国', '日本'])
bar2.add_xaxis(['美国', '中国', '日本'])
bar3.add_xaxis(['美国', '中国', '日本'])
# 添加y轴数据（position='right'，将数值标签设置在右边，默认是在上边）
bar1.add_yaxis('GDP', [30, 10, 15], label_opts=LabelOpts(position='right'))
bar2.add_yaxis('GDP', [40, 20, 20], label_opts=LabelOpts(position='right'))
bar3.add_yaxis('GDP', [45, 30, 25], label_opts=LabelOpts(position='right'))
# 反转x和y轴
bar1.reversal_axis()
bar2.reversal_axis()
bar3.reversal_axis()

# 创建时间线对象
timeline = Timeline(
    # 设置时间线主题
    {'theme': ThemeType.WHITE}
)
# 添加三个时间点，每个时间点对应一张柱状图
timeline.add(bar1, '2010年GDP')
timeline.add(bar2, '2015年GDP')
timeline.add(bar3, '2020年GDP')

# 自动播放设置
timeline.add_schema(
    # 设置自动播放的间隔时间
    play_interval=1000,
    # 自动播放是否显示时间线（默认是True）
    is_timeline_show=True,
    # 是否自动播放（默认是False）
    is_auto_play=True,
    # 是否循环自动播放（默认是False）
    is_loop_play=True
)

# 通过时间线对象生成柱状图
timeline.render()
